package com.atguigu.gmall.pms.feign;

import com.atguigu.gmall.common.bean.ResponseVo;
import com.atguigu.gmall.pms.feign.fallback.GmallSmsFallback;
import com.atguigu.gmall.sms.api.GmallSmsApi;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

/*
GmallSmsClient: feign客户端的原理 还是 将调用的方法转为http请求访问目标服务的接口得到返回值
        请求地址：访问的目标服务可能多实例启动，最好使用负载均衡
                @FeignClient(value = "sms-service")  value值可以从注册中心获取到要访问的服务的ip+端口号
                        http://192.168.1.1:18085
        请求方式：
                 @PostMapping("sms/skubounds/saveSkuSaleInfo")

        请求参数：
                (@RequestBody SkuSaleInfoVo skuSaleInfoVo)
                注解必须写：
                   @RequestBody:表示参数在请求体中提交
                   @PathVariable: 表示参数在路径中提交
                   @RequestParam: 表示参数以请求参数的方式提交(url?k=v&k=v)
        返回值：
                ResponseVo<Object>

      feign已经帮助我们自动封装请求报文发起请求，将响应的响应报文响应体转为 方法的返回值类型对象
 */
@FeignClient(value = "sms-service") //192.168.0.111:18085
public interface GmallSmsClient extends GmallSmsApi {

}
